<?php 
if ( ! defined('BASEPATH')) exit('el acceso directo a esta página no esta permitido.');

class verifylogin extends ci_controller {

   function __construct()
   {
     parent::__construct();
     $this->load->model('users_model','users');     
     $this->load->model('empresas_model','empresas');
   }
   
   public function access_dropbox()
    {
        $params['key'] = '4picv6z5kkamnt5';
        $params['secret'] = 'dmlgqq0l0zegbs3';
        $this->load->library('dropbox', $params);
        $oauth = $this->dropbox->get_access_token($this->session->userdata('token_secret'));
        if(!isset($oauth['oauth_token'])){
           redirect(base_url());
        }
        $this->session->set_userdata('oauth_token', $oauth['oauth_token']);
        $this->session->set_userdata('oauth_token_secret', $oauth['oauth_token_secret']);
        
        //guardamos en la bd los tokens de dropbox
        $params['access'] = array('oauth_token'=>urlencode($this->session->userdata('oauth_token')),
                                  'oauth_token_secret'=>urlencode($this->session->userdata('oauth_token_secret')));
        $this->empresas->settokens($params['access']);
        redirect('home');
        $this->session->set_userdata('oauth_token', $oauth['oauth_token']);
        $this->session->set_userdata('oauth_token_secret', $oauth['oauth_token_secret']);
    }
    
    function drop_auth(){
        if($this->session->userdata('logged_in'))
        {
            //checamos los datos de acceso de la empresa a dropbox
          //  $session_data = $this->session->userdata('logged_in');
            if($this->session->userdata['oauth_token']== ""){
          
                    //se realiza el proceso de solicitud de autorizacion para dropbox...
                    $params['key'] = '4picv6z5kkamnt5';
                    $params['secret'] = 'dmlgqq0l0zegbs3';
                    $this->load->library('dropbox', $params);
                    $data = $this->dropbox->get_request_token(site_url("verifylogin/access_dropbox"));
                    $this->session->set_userdata('token_secret', $data['token_secret']);
                    redirect($data['redirect']);
         }
         else redirect('dispositivos');
        }
         else redirect('login');
    }

   function index()
   {
     //validamos los datos introducidos por el usuario
     $this->load->helper('html');
     $this->load->helper('form');
     $this->load->library('form_validation');
     $this->form_validation->set_error_delimiters('<div class="alert alert-danger">','</div>');
     $this->form_validation->set_rules('username', 'nombre de usuario', 'trim|required|xss_clean');
     $this->form_validation->set_rules('password', 'password', 'trim|required|xss_clean|callback_check_database');
     $this->form_validation->set_message('required', 'el campo %s es obligatorio');

     if($this->form_validation->run() == false)
     {
        $this->load->view('partials/header');
        $this->load->view('pages/login_view');
        $this->load->view('partials/footer');
     }
     else
     {
          redirect('verifylogin/drop_auth');
     }
   }
   
   function reset_auth(){
     //  echo $this->session->userdata('empresa');
        if($this->session->userdata('logged_in'))
        {
            $session_data = $this->session->userdata('logged_in');           
            $this->empresas->deletetokens($session_data['empresa']);
            $this->session->set_userdata('oauth_token',"");
            $this->session->set_userdata('oauth_token_secret',"");
            redirect('verifylogin/drop_auth');
        }
         else redirect('login');
   }

 function check_database($password)
 {
   $username = $this->input->post('username');
   //mandamos llamar el metodo del modelo que realiza la consulta
   $result = $this->users->login($username, $password);

   if($result)
   {
     $sess_array = array();
     foreach($result as $row)
     {
       $sess_array = array(
         'id' => $row->idusuario,
         'username' => $row->login,
         'nombrecompleto' => $row->nombrecompleto,
         'tipousuario' => $row->tipousuario,
         'empresa' => $row->empresa,         
       );
       $this->session->set_userdata('logged_in', $sess_array);
       $this->session->set_userdata('oauth_token',$row->oauth_token);
       $this->session->set_userdata('oauth_token_secret',$row->oauth_token_secret);
     }
     return true;
   }
   else
   {
     $this->form_validation->set_message('check_database', 'Nombre de usuario o contraseña inválidos.');
     
     return false;
   }
 }
}